﻿using SvCore.CallOut;
using SvGame.Objects;

namespace SvGame.Logic;

public static partial class GameLogic
{
    public static void RoomInit(this Npc npc, IRole me)
    {
        foreach (var item in npc.Cfg.Inits)
        {
            switch (item)
            {
                case EInitType.复活:
                    me.Callout(1, NpcInitRevive, 0);
                    break;
                default:
                    break;
            }
        }
    }
    public static void NpcInitRevive(IRole me, int index)
    {
        List<string> listMessage = new()
        {
            "#HIW#崔判官向你招招手，说道：新来的，你莫乱跑，画了生死簿，我好送你还阳。#NOR#" ,
            "#HIW#崔判官看着你笑了笑，说道：生死有命，你也不要太难过了。#NOR#" ,
            "#HIW#崔判官从怀中拿出一个黑底白字的册子翻看着。。。#NOR#" ,
            "#HIW#崔判官合上册子，说道：命不该死，多留无益，我这便送你还阳去吧！#NOR#" ,
            "#HIW#崔判官伸手向你一指，你的魂魄又回到了自己身上。。。#NOR#",
            "#HIW#一股阴冷的浓雾突然出现，很快地包围了你。#NOR#" ,
        };

        if (index >= 0 && index < listMessage.Count)
        {
            me.Message(listMessage[index]);
            me.Callout(1, NpcInitRevive, index + 1);
            return;
        }

        var pme = me as Player;
        if (pme != null)
        {
            pme.Move(ReviveRoom);
            ReviveRoom.Message("眼前一股青气飘荡，满满地聚成了一个人的样子。", pme);
        }
    }
}
